package xyz.lisys.mybatis;

import lombok.Getter;
import lombok.Setter;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

@Getter
@Setter
public class MyBatisSql {

    private String sql;
    private Object[] parameters;

    @Override
    public String toString() {
        if (parameters == null || sql == null) {
            return "";
        }

        List<Object> parametersArray = Arrays.asList(parameters);
        List<Object> list = new ArrayList<>(parametersArray);

        while (sql.contains("?") && !list.isEmpty() && parameters.length > 0) {
            sql = sql.replaceFirst("\\?", list.get(0).toString());
            list.remove(0);
        }

        return sql.replaceAll("(\r?\n(\\s*\r?\n)+)", "\r\n");
    }
}
